package cargarDatos.convertirArchivos;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Locale;
import java.util.StringTokenizer;
import javax.swing.JOptionPane;
import rutas.GetRoutes;

public class DumpASql {
	static BufferedReader input;
	
	static StringTokenizer _stk;
	static String readln() throws IOException{
		String l=input.readLine();
		if(l!=null) _stk=new StringTokenizer(l,",",true);
		return l;
	}
	
	static String next(){return _stk.nextToken();}
	static int nextInt(){return Integer.parseInt(next());}
	
	static void dbg(Object...o) {
		System.out.println(Arrays.deepToString(o));
	}
	
        static PrintWriter output;
	public static void main(String[] args) throws IOException {
		
//		PrintWriter output = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
		
//		Locale.setDefault(Locale.US);
//		input=new BufferedReader(new InputStreamReader(System.in));
                String archivo=GetRoutes.escogerRutaArchivo();
		input=new BufferedReader(new FileReader(archivo));
                output = new PrintWriter(new BufferedWriter(new FileWriter(archivo+".sql")));
                
                String tabla=JOptionPane.showInputDialog("A que tabla va a guardar los datos?");
                while(readln()!=null){
                    output.printf("INSERT INTO %s VALUES (",tabla);
                    
                    if(_stk.hasMoreTokens()){
                        String dato=next();
                        escribirDato(dato);
                    }
                    while(_stk.hasMoreTokens()){
                        String dato=next();
//                        if(dato.equals("RESPONSABLE"))
//                            dato="TRUE";
//                        System.out.println(dato);
//                        escribirDatoComa(dato);
                        escribirDato(dato);
                    }
                    
                    output.println(");");
                }
		output.close();
	}
        
        static int comas;
//        static boolean escribirDatoComa(String dato){
//            try {
//                output.print(","+Integer.parseInt(dato));
//            } catch (Exception e) {
//                if(dato.equals(""))
//                    output.print(",NULL");
//                else
//                    output.printf(",\'%s\'",dato);
//            }
//            return true;
//        }
        
        static boolean escribirDato(String dato){
            if(dato.equals(",")){
                comas++;
                if(comas>=2){
                    if(_stk.hasMoreTokens())
                        output.print("NULL,");
                    else
                        output.print("NULL");
                }
                else
                    if(_stk.hasMoreTokens())
                        output.print(dato);//y si no hay mas pailander bi..
                return true;
            }
            comas=0;
            try {
                output.print(Integer.parseInt(dato));
            } catch (Exception e) {
                if(dato.equals(""))
                    output.print("NULL");
                else
                    output.printf("\'%s\'",dato);
            }
            return true;
        }
}
